fix(extensions): clarify runtime recovery and config failures - #1603
Merged
limityan merged 1 commit intoJul 18, 2026
Merged
Conversation
limityan
force-pushed
the
yanzhn/opencode-extension-stabilization
branch
from
July 18, 2026 05:14
8cdff80 to
8a140c2
Compare
limityan
marked this pull request as ready for review
July 18, 2026 05:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Unavailable, block approval and registration, log only a deduplicated sanitized error category, and reuse the previous approval and same-name conflict choice after recovery.Product and architecture impact
This PR does not add a new extension type or runtime. Ecosystem parsing remains in the OpenCode adapter, provider-neutral activation remains in the shared external-source path, and execution remains in the existing Tool and Subagent owners. GUI and interactive TUI consume the same typed state with surface-specific copy. Remote workspaces remain explicitly unsupported for these local sources.
Package plugins, Hooks, remote execution, OS sandboxing, process-tree limits, global budgets, watcher changes, full metrics, and runtime hot replacement remain deferred. System prompts, permission policy, persisted preference schemas, dependency manifests, and remote routing are unchanged.
Independent review
Separate adversarial architecture and product reviews identified and verified fixes for:
No P0-P2 findings remain after the final read-only review.
Validation
rustup run nightly cargo check --workspacerustup run nightly cargo test -p bitfun-core model_config -- --nocapture(5 passed)rustup run nightly cargo test -p bitfun-cli external_tool_runtime_recovery_explains_that_bitfun_must_restart -- --nocapturerustup run nightly cargo test -p bitfun-cli external_review_copy_classifies_unknown_locations_and_agent_diagnostics_safely -- --nocapturerustup run nightly cargo test -p bitfun-services-integrations --features script-tool-runtime --test script_tool_runtime runtime_availability_does_not_claim_an_unchecked_node_version -- --nocapturepnpm --dir src/web-ui run test:run src/infrastructure/config/components/ExternalSourcesConfig.test.tsx(15 passed)pnpm run type-check:webpnpm run i18n:audit(0 warnings)pnpm run check:repo-hygienenode scripts/check-core-boundaries.mjsgit diff --checkThe installed stable Rust components are inconsistent locally, so Rust formatting and local Rust verification used the installed nightly toolchain. CI remains the stable-toolchain verification.